from rotypes.idldsl import CtypesEnum

class DirectXAlphaMode(CtypesEnum):
    Unspecified = 0
    Premultiplied = 1
    Straight = 2
    Ignore = 3

class DirectXColorSpace(CtypesEnum):
    RgbFullG22NoneP709         = 0
    RgbFullG10NoneP709         = 1
    RgbStudioG22NoneP709       = 2
    RgbStudioG22NoneP2020      = 3
    Reserved                   = 4
    YccFullG22NoneP709X601     = 5
    YccStudioG22LeftP601       = 6
    YccFullG22LeftP601         = 7
    YccStudioG22LeftP709       = 8
    YccFullG22LeftP709         = 9
    YccStudioG22LeftP2020      = 10
    YccFullG22LeftP2020        = 11
    RgbFullG2084NoneP2020      = 12
    YccStudioG2084LeftP2020    = 13
    RgbStudioG2084NoneP2020    = 14
    YccStudioG22TopLeftP2020   = 15
    YccStudioG2084TopLeftP2020 = 16
    RgbFullG22NoneP2020        = 17
    YccStudioGHlgTopLeftP2020  = 18
    YccFullGHlgTopLeftP2020    = 19
    RgbStudioG24NoneP709       = 20
    RgbStudioG24NoneP2020      = 21
    YccStudioG24LeftP709       = 22
    YccStudioG24LeftP2020      = 23
    YccStudioG24TopLeftP2020   = 24

class DirectXPixelFormat(CtypesEnum):
    Unknown                         = 0
    R32G32B32A32Typeless            = 1
    R32G32B32A32Float               = 2
    R32G32B32A32UInt                = 3
    R32G32B32A32Int                 = 4
    R32G32B32Typeless               = 5
    R32G32B32Float                  = 6
    R32G32B32UInt                   = 7
    R32G32B32Int                    = 8
    R16G16B16A16Typeless            = 9
    R16G16B16A16Float               = 10
    R16G16B16A16UIntNormalized      = 11
    R16G16B16A16UInt                = 12
    R16G16B16A16IntNormalized       = 13
    R16G16B16A16Int                 = 14
    R32G32Typeless                  = 15
    R32G32Float                     = 16
    R32G32UInt                      = 17
    R32G32Int                       = 18
    R32G8X24Typeless                = 19
    D32FloatS8X24UInt               = 20
    R32FloatX8X24Typeless           = 21
    X32TypelessG8X24UInt            = 22
    R10G10B10A2Typeless             = 23
    R10G10B10A2UIntNormalized       = 24
    R10G10B10A2UInt                 = 25
    R11G11B10Float                  = 26
    R8G8B8A8Typeless                = 27
    R8G8B8A8UIntNormalized          = 28
    R8G8B8A8UIntNormalizedSrgb      = 29
    R8G8B8A8UInt                    = 30
    R8G8B8A8IntNormalized           = 31
    R8G8B8A8Int                     = 32
    R16G16Typeless                  = 33
    R16G16Float                     = 34
    R16G16UIntNormalized            = 35
    R16G16UInt                      = 36
    R16G16IntNormalized             = 37
    R16G16Int                       = 38
    R32Typeless                     = 39
    D32Float                        = 40
    R32Float                        = 41
    R32UInt                         = 42
    R32Int                          = 43
    R24G8Typeless                   = 44
    D24UIntNormalizedS8UInt         = 45
    R24UIntNormalizedX8Typeless     = 46
    X24TypelessG8UInt               = 47
    R8G8Typeless                    = 48
    R8G8UIntNormalized              = 49
    R8G8UInt                        = 50
    R8G8IntNormalized               = 51
    R8G8Int                         = 52
    R16Typeless                     = 53
    R16Float                        = 54
    D16UIntNormalized               = 55
    R16UIntNormalized               = 56
    R16UInt                         = 57
    R16IntNormalized                = 58
    R16Int                          = 59
    R8Typeless                      = 60
    R8UIntNormalized                = 61
    R8UInt                          = 62
    R8IntNormalized                 = 63
    R8Int                           = 64
    A8UIntNormalized                = 65
    R1UIntNormalized                = 66
    R9G9B9E5SharedExponent          = 67
    R8G8B8G8UIntNormalized          = 68
    G8R8G8B8UIntNormalized          = 69
    BC1Typeless                     = 70
    BC1UIntNormalized               = 71
    BC1UIntNormalizedSrgb           = 72
    BC2Typeless                     = 73
    BC2UIntNormalized               = 74
    BC2UIntNormalizedSrgb           = 75
    BC3Typeless                     = 76
    BC3UIntNormalized               = 77
    BC3UIntNormalizedSrgb           = 78
    BC4Typeless                     = 79
    BC4UIntNormalized               = 80
    BC4IntNormalized                = 81
    BC5Typeless                     = 82
    BC5UIntNormalized               = 83
    BC5IntNormalized                = 84
    B5G6R5UIntNormalized            = 85
    B5G5R5A1UIntNormalized          = 86
    B8G8R8A8UIntNormalized          = 87
    B8G8R8X8UIntNormalized          = 88
    R10G10B10XRBiasA2UIntNormalized = 89
    B8G8R8A8Typeless                = 90
    B8G8R8A8UIntNormalizedSrgb      = 91
    B8G8R8X8Typeless                = 92
    B8G8R8X8UIntNormalizedSrgb      = 93
    BC6HTypeless                    = 94
    BC6H16UnsignedFloat             = 95
    BC6H16Float                     = 96
    BC7Typeless                     = 97
    BC7UIntNormalized               = 98
    BC7UIntNormalizedSrgb           = 99
    Ayuv                            = 100
    Y410                            = 101
    Y416                            = 102
    NV12                            = 103
    P010                            = 104
    P016                            = 105
    Opaque420                       = 106
    Yuy2                            = 107
    Y210                            = 108
    Y216                            = 109
    NV11                            = 110
    AI44                            = 111
    IA44                            = 112
    P8                              = 113
    A8P8                            = 114
    B4G4R4A4UIntNormalized          = 115
    P208                            = 130
    V208                            = 131
    V408                            = 132

class DirectXPrimitiveTopology(CtypesEnum):
    Undefined     = 0
    PointList     = 1
    LineList      = 2
    LineStrip     = 3
    TriangleList  = 4
    TriangleStrip = 5
